Field of Invention
The present invention relates generally to data communication networks and devices, and relates more particularly to source packet routing in data communications networks.
Description of the Related Art
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
As information handling systems provide increasingly more central and critical operations in modern society, it is important that the networks are reliable. One method used to improve reliability is to provide redundant links between network devices. By employing redundant links, network traffic between two network devices that would normally be interrupted can be re-routed to the back-up link in the event that the primary link fails.
Multiprotocol Label Switching (MPLS) is a mechanism in high-performance telecommunications networks that directs data from one network node to the next based on fixed size, 20-bit labels that are looked up as an exact match, rather than long network addresses (typically 32 or 128 bits) that are looked up as a longest prefix match, avoiding complex lookups in a routing table. The labels identify virtual links (paths) between distant nodes rather than endpoints. MPLS can encapsulate packets of various network protocols.
In an MPLS network, data packets are assigned labelstack. The switches are referred to as LSRs (label switch routers). Packet-forwarding decisions at intermediate LSRs are made solely on the contents of the top label in the stack, without the need to examine the packet itself. Packet forwarding decisions at edge LSRs may involve lookups on other headers in the packet (e.g. MAC addresses, Virtual Local Area Networks (VLANs) and/or IPv4/IPv6 addresses). There are one or more labels in a label stack.
Most hardware used in MPLS networks has limits on the number of labels that can be pushed (at ingress) or parsed (in the core). Parsing in the core gets to the Internet Protocol (IP) and transport headers (e.g. Transmission Control Protocol (TCP) or User Datagram Protocol (UDP)) for efficient hashing of traffic flows on to links in a link aggregation or equal-cost multipath group. Alternatively, the entropy label may be used but it further reduces the usable label stack.
Technologies such as Source Packet Routing In Networking (SPRING) require the ingress to push a number of labels equal to the number of hops that the packet will traverse in the network. SPRING is a source routing technology that allows the source to specify any path, including a non-shortest path, which can be used for certain applications such as efficient load balancing. One of the technologies used for implementing SPRING is MPLS. When MPLS is used, in general, for n explicit hops, the ingress must push n labels. There are other ways to reduce the number of labels that need to be pushed; e.g. using a single label to represent a concatenation of multiple hops, sometimes referred to as “segments,” but this results in added complexity.
In MPLS-based SPRING, each label can be used to represent a hop. A certain path can be represented with a stack of labels where each label represents a hop. So the number of labels restricts the number of hops that can be specified. With the prior art hardware, the number of labels that can be pushed, n, is limited to a small number and thus restricts the number hops. For some hardware the limitation for n is 3. Therefore, only three hops can be explicitly specified.
One disadvantage of the present system is that the number of hops is limited by the number of labels that can be pushed.
Accordingly, what is needed are systems and methods that can address the deficiencies and limitations of the current hardware.